Collaborative email

ABSTRACT

Methods, systems, and products are disclosed for writing collaborative email documents, including establishing a collaborative email document on an administrator&#39;s computer; identifying one or more collaborators who are authorized to view and edit the document; providing to the collaborators copies of the document for viewing and editing, wherein the collaborators&#39; copies reside on collaborators&#39; computers; creating revisions in at least one copy of the document; recording the revisions; and updating the copies of the document on collaborators&#39; computers with the revisions. Embodiments typically include identifying editable portions of the email document, including specifying that only certain collaborators are authorized to view and edit one or more portions of the document. In many embodiments, revisions are streamed through a server so that there is no ‘master copy’ of a collaborative document, on a server or elsewhere, against which revisions are recognized.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The field of the invention is data processing, or, more specifically,methods, systems, and products for collaborative email.

2. Description Of Related Art

Systems for collaboration in developing email documents generallymaintain a master copy of a document in a central location, recordchanges in the master copy, and update collaborators' copies byproviding a new copy of the entire document. This uses a lot ofbandwidth, particularly when there are many revisions over a period oftime. There are version control systems, such as Unix's Source CodeControl System or ‘SCCS’ and the open-source version control systemknown as the Concurrent Versions System or ‘CVS.’ Such systems arestrongly oriented to version control for source code documents, however,and do not integrate very well with collaborative email, lacking, asthey do, support for such collaborative features as automated updates tocertain revision levels or authentication through valid digitalsignatures. For these reasons, there is an ongoing need for improvementsin systems and methods for collaborative email.

SUMMARY OF THF INVENTION

Methods, systems, and computer program products are disclosed forwriting a collaborative email document, including establishing acollaborative email document on an administrator's computer; identifyingone or more collaborators who are authorized to view and edit thedocument, wherein the collaborators optionally include theadministrator; providing to the collaborators copies of the document forviewing and editing, wherein the collaborators' copies reside oncollaborators' computers; creating revisions in at least one copy of thedocument; recording the revisions; and updating the copies of thedocument on collaborators' computers with the revisions. In typicalembodiments, establishing a collaborative email document on anadministrator's computer includes identifying an administrator for thedocument and retaining an administrative copy of the document on theadministrator's computer. In typical embodiments, updating copies of adocument with revisions includes updating a copy of the document withone or more revisions later than a current version identifier for thecopy.

Typical embodiments include identifying editable portions of the emaildocument, wherein identifying one or more collaborators furthercomprises specifying that only certain collaborators are authorized toview and edit one or more portions of the document. Typical embodimentsalso include recording in the document authorization for only certaincollaborators to edit one or more portions of the document.

Typical embodiments also include identifying one or more signatories forthe document; providing to each signatory a copy of the document forsigning; affixing to the document a digital signature for eachsignatory; and sending the signed document from the administrator'scomputer to addressees. Such embodiments typically also include sendingthe collaborative email document from the administrator's computer toaddressees only when the document bears valid digital signatures fromall signatories.

In typical embodiments, recording revisions comprises storing therevisions on a computer accessible to collaborators' computers. In suchembodiments, recording revisions typically includes storing therevisions with a version identification for each revision. In suchembodiments, recording revisions typically includes storing therevisions with a sequence identification for each revision.

In typical embodiments, updating copies of a collaborative emaildocument with revisions further comprises communicating the revisionsasynchronously to the collaborators and to the administrator's computer.In many embodiments, updating the collaborators' copies of the documentwith the revisions further comprises communicating the revisionssynchronously to one or more collaborators as the revisions are made. Insuch embodiments, updating the copies of the document with the revisionsoften includes identifying collaborator computers that are available forsynchronous communications of revisions, communicating revisionssynchronously to collaborator computers that are available forsynchronous communications, and updating current version identificationsfor the copies of the document on collaborator's computers that areavailable for synchronous communications. In such embodiments,identifying collaborator computers that are available for synchronouscommunications of revisions typically includes determining whethercollaborators copies are synchronized with the latest revisions.

The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescriptions of exemplary embodiments of the invention as illustrated inthe accompanying drawings wherein like reference numbers generallyrepresent like parts of exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an architecture for a data processing system in whichvarious embodiments of the present invention may be implemented.

FIG. 2 sets forth a block diagram of automated computing machineryuseful in systems for collaborative email according to embodiments ofthe present invention.

FIG. 3 sets forth a line drawing of a data entry screen on an emailclient improved according to embodiments of the present invention.

FIG. 4 sets forth a database diagram of exemplary data structures usefulin various embodiment of the present invention.

FIG. 5 sets forth a flow chart depicting a method for writing acollaborative email document.

FIG. 6 sets forth a flow chart illustrating an extension of the methodof FIG. 5.

FIG. 7 sets forth a flow chart illustrating a method of synchronouscommunications of revisions.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS Introduction

The present invention is described to a large extent in thisspecification in terms of methods for collaborative email. Personsskilled in the art, however, will recognize that any computer systemthat includes suitable programming means for operating in accordancewith the disclosed methods also falls well within the scope of thepresent invention.

Suitable programming means include any means for directing a computersystem to execute the steps of the method of the invention, includingfor example, systems comprised of processing units and arithmetic-logiccircuits coupled to computer memory, which systems have the capabilityof storing in computer memory, which computer memory includes electroniccircuits configured to store data and program instructions, programmedsteps of the method of the invention for execution by a processing unit.The invention also may be embodied in a computer program product, suchas a diskette or other recording medium, for use with any suitable dataprocessing system.

Embodiments of a computer program product may be implemented by use ofany recording medium for machine-readable information, includingmagnetic media, optical media, or other suitable media. Persons skilledin the art will immediately recognize that any computer system havingsuitable programming means will be capable of executing the steps of themethod of the invention as embodied in a program product. Personsskilled in the art will recognize immediately that, although most of theexemplary embodiments described in this specification are oriented tosoftware installed and executing on computer hardware, nevertheless,alternative embodiments implemented as firmware or as hardware are wellwithin the scope of the present invention.

Definitions

In this specification, the terms “field,” “data element,” and“attribute,” unless the context indicates otherwise, generally are usedas synonyms, referring to individual elements of information, typicallyrepresented as digital data. Aggregates of data elements are referred toas “records” or “data structures.” Aggregates of records are referred toas “tables” or “files.” Aggregates of files or tables are referred to as“databases.” In the context of tables in databases, fields may bereferred to as “columns,” and records may be referred to as “rows.”Complex data structures that include member methods, functions, orsoftware routines as well as data elements are referred to as “classes.”Instances of classes are referred to as “objects” or “class objects.”

“CGI” means “Common Gateway Interface,” a standard technology for datacommunications of resources between web servers and web clients. CGIprovides a standard interface between servers and server-side ‘gateway’programs that administer actual reads and writes of data to and fromfiles systems and databases.

“Client,” “client device,” “client machine,” or “client computer” meansany computer or other automated computing machinery capable ofadministering collaborative email according to embodiments of thepresent invention. Examples include personal computers, PDAs, mobiletelephones, laptop computers, handheld devices, and others as will occurto those of skill in the art. Clients include devices capable ofwireless as well as wireline communications.

“HDML” stands for ‘Handheld Device Markup Language,’ a markup languageused to format content for web-enabled mobile phones. HDML isproprietary to Openwave Systems, Inc., and can only be operated onphones that use Openwave browsers. Rather than WAP, HDML operates overOpenwave's Handheld Device Transport Protocol (“HDTP”).

“HTML” stands for ‘HyperText Markup Language,’ a standard markuplanguage for displaying web pages on browsers.

“HTTP” stands for ‘HyperText Transport Protocol,’ a standard datacommunications protocol of the World Wide Web. HTTP is a hyperlinkingprotocol. In exemplary embodiments of the present invention,asynchronous communications of revisions are often implemented by use ofhyperlinking protocols. Other examples of hyperlinking protocols includeHDML and WAP.

“POP” means Post Office Protocol, referring to the standard protocol forcommunicating email messages from email servers to email clients. “POP3”is a standard Post Office Protocol capable of communicating emailmessages among email servers and both to and from email clients, whichmeans that POP3 is now useful as a single email protocol with no needfor SMTP.

“Server” in this specification refers to a computer or other automatedcomputing machinery on a network that manages resources, includingdocuments, and requests for access to such resources. A “web server,” isa server that communicates with clients through data communicationsapplication programs, such as browsers or microbrowsers, by means ofhyperlinking protocols such as HTTP, WAP, or HDTP, in order to manageand make available to networked computers documents, digital objects,and other resources. Servers generally include applications programsthat that accept data communications connections in order to servicerequests from clients by sending back responses. Any given computer orprogram therefore may be both a client and a server. The use of theseterms in this disclosure refers primarily to the role being performed bythe computer or program for a particular connection or coupling for datacommunications, rather than to the computer or program's capabilities ingeneral.

“SMTP” means Simple Mail Transfer Protocol, referring to the standardprotocol for communicating email messages from email clients to emailservers and from email servers to other email servers. It is typical inprior art that SMTP is used to communicate email messages from sourceemail clients to mailbox locations, and POP is then used to communicatethe email messages from mailboxes to destination email clients.

“TCP/IP” refers to two layers of a standard OSI data communicationsprotocol stack. The network layer is implemented with the InternetProtocol, hence the initials ‘IP.’ And the transport layer isimplemented with the Transport Control Protocol, referred to as ‘TCP.’The two protocols are used together so frequently that they are oftenreferred to as the TCP/IP suite, or, more simply, just ‘TCP/IP.’ TCP/IPis the standard data transport suite for the well-known world-widenetwork of computers called ‘the Internet.’

“WAP” refers to the Wireless Application Protocol, a protocol for usewith handheld wireless devices. Examples of wireless devices useful withWAP include mobile phones, pagers, two-way radios, hand-held computers,and PDAs. WAP supports many wireless networks, and WAP is supported bymany operating systems. WAP supports HTML, XML, and particularly WML(the Wireless Markup Language), which is a language particularlydesigned for small screen and one-hand navigation without a keyboard ormouse. Operating systems specifically engineered for handheld devicesinclude PalmOS, EPOC, Windows CE, FLEXOS, OS/9, and JavaOS. WAP devicesthat use displays and access the Internet run “microbrowsers.” Themicrobrowsers use small file sizes that can accommodate the low memoryconstraints of handheld devices and the low-bandwidth constraints ofwireless networks.

Collaborative Email

Methods and systems according to the present invention generallyimplement collaborative email by identifying collaborators authorized toview and edit a collaborative email document as it is being written.Segments of the document may be identified that only particularcollaborators are authorized to view and edit. Revisions are typicallystreamed asynchronously (or synchronously) among collaborators' clientsthrough one or more servers. Such methods and systems typically identifyan administrator for the document on whose client is maintained anadministrative copy of the document. The administrator may or may not bean authorized collaborator, but the administrator's copy of the documentmay be synchronized to a current version of the document, so that theadministrator may provide administrative services regarding developmentof the document, administrative services such as monitoring documentstatus, securing valid digital signatures from signatories, and finallytransmitting the final version of the document to addressees.

In such systems, the addressees may or may not include thecollaborators, and the signatories may or may not be collaborators. Forexample, a manager may assign the manager's secretary to create acollaborative document, type its initial contents, and act asadministrator for development of the document. The manager may designateone or more executives as signatories, executives known to the manageras responsible for the subject area of the document. The manager may ormay not be a signatory. The manager may designate collaborators who willreceive copies of the document to view and edit while the document isbeing written. In fact, it may be said that the collaborative edits orrevisions to the document actually implement the writing of thedocument. The manager may or may not be listed as a collaborator.

When the collaborators are finished editing the document, theadministrator may email it to the signatories for digital signatures.After all required signatures are affixed to the document, theadministrator may ‘send’ the document to its addressees. In emailclients improved according to embodiments of the present invention, theemail client's ‘send’ function typically is not enabled for sending toaddressees until all required signatures are present. The send button oncollaborators' clients typically is not enabled at all. Theadministrator's copy is updated with revisions just as are all thecollaborators' copies. The only thing that distinguishes operation ofthe administrator's client from collaborators' email clients is thatsending to addressees typically will eventually become enabled on theadministrator's client (when the document is signed), but not so oncollaborators' clients. Revisions typically are the only transmissionsof data from collaborators' clients regarding collaborative emaildocuments.

Exemplary methods, system, and products for collaborative email arefurther explained with reference to the accompanying drawings, beginningwith FIG. 1. FIG. 1 depicts an architecture for a data processing systemin which various embodiments of the present invention may beimplemented. The system of FIG. 1 includes a number of computers coupledfor data communications in networks. Each of the computers depicted mayfunction as an email client or server according to embodiments of thepresent invention.

The system of FIG. 1 includes networks 102, 104. Networks in suchsystems may comprise LANs, WANs, intranets, internets, the Internet,webs, and the World Wide Web itself. Such networks comprise media thatmay be used to provide couplings for data communications between variousdevices and computers connected together within a distributed dataprocessing system. Such networks may include permanent couplings, suchas wire or fiber optic cables, or temporary couplings made throughwireline telephone or wireless communications.

In the example of FIG. 1, server 128 and server 105 are connected tonetwork 102. Storage unit 132 is connected to network 102 through server105. Revisions records 134 identifying revisions to a collaborativeemail document according to embodiments of the present invention may bestored on storage units like storage unit 132. In addition, severalexemplary client devices including a PDA 106, a workstation 108, and amobile phone 110 are connected to network 102. Network-enabled mobilephone 110 connects to network 102 through wireless link 116, and PDA 106connects to network 102 through wireless link 114. In the example ofFIG. 1, server 128 couples directly to client workstation 130 andnetwork 104 (which may be a LAN), which incorporates wirelesscommunication links supporting a wireless coupling to laptop computer126 and wireline protocols supporting a wired coupling to clientworkstation 112. Each of these exemplary client devices may supportemail clients for collaborative email according to embodiments of thepresent invention.

Client devices and servers in such distributed processing systems may berepresented by a variety of computing devices, such as mainframes,personal computers, personal digital assistants, web-enabled mobiletelephones, and so on. The particular servers and client devicesillustrated in FIG. 1 are for explanation, not for limitation. Dataprocessing systems may include additional servers, clients, routers,other devices, and peer-to-peer architectures, not shown in FIG. 1, aswill occur to those of skill in the art. Networks in such distributeddata processing systems may support many data communications protocols,TCP/IP, HTTP, WAP, HDTP, SMS, SMNT, POP, and others as will occur tothose of skill in the art. Various embodiments of the present inventionmay be implemented on a variety of hardware platforms in addition tothose illustrated in FIG. 1. FIG. 1 is presented as an example of aheterogeneous computing environment in which various embodiments of thepresent invention may be implemented, not as an architectural limitationof the present invention.

Although exemplary embodiments in this disclosure are describedgenerally in terms of client-server architectures, that is not alimitation of the present invention. On the contrary, variousembodiments of the present invention may be implemented, for example, inpeer-to-peer architectures and in other computer architecturalarrangements as will occur to those of skill in the art.

FIG. 2 sets forth a block diagram of automated computing machinerycomprising a computer 106, such as a client device, email client, orserver, useful in systems for collaborative email according toembodiments of the present invention. The computer 106 of FIG. 2includes at least one computer processor 156 or ‘CPU’ as well as randomaccess memory 168 (“RAM”). Stored in RAM 168 is an application program152. Application programs useful in implementing collaborative emailinclude Java servlets and CGI scripts running on servers and emailclients on client machines. Also stored in RAM 168 is an operatingsystem 154. Operating systems useful in computers according toembodiments of the present invention include Unix, Linux, MicrosoftNTTM, and others as will occur to those of skill in the art.

The computer 106 of FIG. 2 includes computer memory 166 coupled througha system bus 160 to the processor 156 and to other components of thecomputer. Computer memory 166 may be implemented as a hard disk drive170, optical disk drive 172, electrically erasable programmableread-only memory space (so-called ‘EEPROM’ or ‘Flash’ memory) 174, RAMdrives (not shown), or as any other kind of computer memory as willoccur to those of skill in the art.

The example computer 106 of FIG. 2 includes communications adapter 167that implements connections for data communications 184 to othercomputers 182, servers or clients. Communications adapters implement thehardware level of data communications connections through which clientcomputers and servers send data communications directly to one anotherand through networks. Examples of communications adapters include modemsfor wired dial-up connections, Ethernet (IEEE 802.3) adapters for wiredLAN connections, and 802.11b adapters for wireless LAN connections.

The example computer of FIG. 2 includes one or more input/outputinterface adapters 178. Input/output interface adapters in computersimplement user-oriented input/output through, for example, softwaredrivers and computer hardware for controlling output to display devices180 such as computer display screens, as well as user input from userinput devices 181 such as keyboards and mice.

Exemplary embodiments of the present invention are further explainedwith reference to FIG. 3. FIG. 3 sets forth a line drawing of a dataentry screen on an email client improved according to embodiments of thepresent invention. The data entry screen of FIG. 3 includes a title line302 that displays the fact that the document under edit is acollaborative email document, the document identification (“465”), andthe name of the email client (“Client Name”). In actual embodiments, theClient Name is the actual name of an email client such as Microsoft'sOutlook™ or Qualcomm's Eudora™.

The data entry screen of FIG. 3 includes a horizontal pull-down menu 304containing the usual menu items such as ‘File,’ ‘Edit,’ ‘View,’ and soon. The entry screen of FIG. 3 also includes a toolbar 306 that includesbuttons titled ‘Display Revisions,’ ‘Commit Revisions,’ ‘Version Back,’‘Version Forward,’ ‘Synch,’ ‘Sign,’ and ‘Send.’ The email client of FIG.3 is programmed to display revisions, or not, in response to operationof the ‘Display Revisions’ button in the toolbar 306. In the example ofFIG. 3, the following text is displayed for collaborative email document465:

-   -   Hyperlinks are implemented in HTML documents by use of the        anchor element whose start and end tags are <a>and </a>.

In this example, ‘Display Revisions’ is set ‘on,’ and the email clienttherefore displays revisions representing deleting ‘hyperlink’ from row2, column 1 and inserting ‘anchor’ at row 2, column 1. If ‘DisplayRevisions’ were set ‘off,’ the text under edit would be displayed as:

-   -   Hyperlinks are implemented in HTML documents by use of the        anchor element whose start and end tags are <a> and </a>.

The email client of FIG. 3 is programmed so that in response tooperation of the ‘Commit Revisions’ button in the toolbar 306, the emailclient encodes a current set of revisions of the copy of the documentunder edit on the client and sends them to a server. The server may be aweb server, for example, making the revisions available for asynchronousdelivery to other clients, or the server may be an instant messagingserver, delivering the revisions synchronously to available clients. Theencoding may be implemented, for example, as follows, for the exemplaryrevision described just above:

-   -   d 2 1 hyperlink    -   i 2 1 anchor        where “d 2 1 hyperlink” encodes “delete the text ‘hyperlink’        beginning at row 2, column 1,” and “i 2 1 anchor” encodes        “insert the text ‘anchor’ beginning at row 2, column 1.”

On a server, revisions so encoded may be stored in data structures suchas those shown in FIG. 4. FIG. 4 shows a database diagram in whichrecords in a document table 402 are related one-to-many to records in acollaborator copy table 410 which are in turn related one-to-many torecords in a revision table 422. Each record in the document table 402represents a collaborative email document having an administrative copyand one or more collaborators' copies. Each record in the document tableincludes a document identification field 404, an identification of theadministrator for the document 406, and a status field 408 for thedocument. The status field may be used, for example, to note that thedocument has been created but not yet distributed to collaborators, ispresently under edit by collaborators, or is disabled for editing whileit is made available for signing by signatories.

Each record in the collaborator copy table 410 represents a copy of acollaborative email document provided to a collaborator for viewing andediting. Each record in the collaborator copy table 410 includes anidentification 412 of the collaborator to whom a copy was provided. Thecollaborator identification 412 may be implemented as, for example, acollaborator's email address. Each collaborator copy record 410 alsoincludes a document identification field 404 identifying the document acopy of which was provided to the collaborator.

Each collaborator copy record 410 in this example also includes anidentification of the current version 414 of the document currentlyprovided as a copy to the collaborator. Updating copies of collaborativeemail documents on collaborators' clients with revisions is typicallycarried out by updating a copy of the document with all revisions laterthan a current version identifier for the copy, and the repository ofthe current version identifier for the copy is often a server-side datastructure such as the one shown in FIG. 4. Storing a copy's currentversion identification server-side generally means that an updaterequest message from a client need specify only the collaboratoridentification 412 and the document identification 404. That is, theupdate request message need not necessarily include the current versionnumber of the collaborative email on the client because the servertracks the version identification 414 for that collaborator's copy ofthat document and can infer it from the collaborator identification andthe document identification. The server then is programmed to respond tosuch an update request message with a response message transmitting allthe revisions later than the current revision number for the copyidentified in the request message—and then updating the current versionidentification 414 to the current version number. This process isreferred to generally in this specification as full synchronization, aprocess often supported in email clients improved according toembodiments of the present invention by a ‘Synch’ button, for example,such as the one shown in the exemplary toolbar 306 for the email clientof FIG. 3.

An alternative request message requests less than a fullsynchronization, such as, for example, the revisions comprising just thenext version, or the revisions comprising a previous version. That is,email clients according to embodiments of the present invention aretypically programmed to operate in response to, for example, a ‘VersionForward’ button, such as the one shown in the example toolbar 306 onFIG. 3, by transmitting to a server a request for the revisionscomprising the next version. ‘Next version’ means the version just afterthe version currently identified in a server-side current versionidentification such as the one at reference 414 on FIG. 4. The serverthen is programmed to respond to such an update request message with aresponse message transmitting only the revisions identified by the nextversion number for the copy identified in the request message—and thenupdating the current version identification 414 to the next versionnumber. Once again, in this method, the email client does not need toadvise the server of its current version; the server knows. The requestmessage need only identify itself as a ‘next version only please’message type and provide the collaborator identification 412 and thedocument identification 404 for the pertinent collaborative document.

Similarly, email clients according to embodiments of the presentinvention are typically programmed to operate in response to a ‘VersionBack’ button, such as the one shown in the example toolbar 306 on FIG.3, by transmitting to a server a request for the revisions comprisingthe previous version. ‘Previous version’ means the version just beforethe version currently identified in a server-side current versionidentification such as the one at reference 414 on FIG. 4. The serverthen is programmed to respond to such an update request message with aresponse message transmitting only the revisions identified by theprevious version number for the copy identified in the requestmessage—and then updating the current version identification 414 to theprevious version number. Once again, in this method, the email clientdoes not need to advise the server of its current version; the serverknows. The request message need only identify itself as a ‘previousversion only please’ message type and provide the collaboratoridentification 412 and the document identification 404 for the pertinentcollaborative document.

Each record in the revision table 422 represents a revision to acollaborative email document. In addition to the revision itself 420,which may be string-encoded as described above, each revision record 422also includes a collaborator identification 412 of the collaborator whocreated a revision, a document identification 404 of the document forwhich the revision is intended, a revision identification 416, and asequence identification 418 for ordering revisions within a version.

As mentioned above, email clients according to embodiments of thepresent invention are typically programmed so that in response tooperation of a ‘Commit Revisions’ button in a toolbar like the one shownat reference 306 on FIG. 3, the email client encodes a current set ofrevisions of the copy of the document under edit on the client and sendsthem to a server. Such a set of revisions, upon arriving at a server,often then is given a revision identification code 416, which may beimplemented, for example, as a sequential integer, 1, 2, 3, and so on.The version identification code (or ‘version number’) identifies a setof revisions from a particular collaborator, when used in correct orderto update copies of the document, as implementing a particular versionof the document.

In typical embodiments, the email client may be programmed to provide asequence number for each revision identifying the correct order in whichthe revisions are to be used to update copies of a collaborative emaildocument. It is clear that the exemplary revisions mentioned above:

-   -   d 2 1 hyperlink    -   i 2 1 anchor        could not be performed meaningfully in reverse order because        after inserting ‘anchor’ at row 2, column 1, an email client        could not then delete ‘hyperlink’ from the same location. This        explains the usefulness of the sequence identification code        shown at reference 418 on FIG. 4.

Methods of the invention are further explained with reference to FIG. 5.FIG. 5 sets forth a flow chart depicting a method for writing acollaborative email document, where the method includes establishing(502) a collaborative email document on an administrator's client. Themethod of FIG. 5 also includes identifying (504) one or morecollaborators who are authorized to view and edit the document as it isbeing written. The collaborators optionally include an administrator forthe document.

Establishing (502) a collaborative email document on an administrativeclient may be carried out by opening a new email document, identifyingthe document as a collaborative one, and identifying an administratorfor the document. In typical embodiments, establishing a collaborativeemail document includes retaining an administrative copy of the documenton an administrative client while the document is written by one or morecollaborators.

It is useful to understand that an administrative copy of acollaborative email document according to embodiments of the presentinvention is not a master document according to prior art. In fact,according to embodiments of the present invention, there is no ‘mastercopy’ of a collaborative document against which revisions arerecognized. All copies, including an administrative copy, here have thesame status and eligibility for viewing, editing, and updating. In fact,if an administrator is also an authorized collaborator, then all copiesare identical, and the only thing that distinguishes the administrator'scopy is that eventually its administrative client will acquire anenabled ‘send’ function, while none of the other clients ever will.

In the present invention, there is no limitation regarding the initialcontents of a collaborative email document. The user who creates adocument, typically the user to be identified as the administrator forthe document, may be an author, writing a first draft, so that theinitial content is substantial. Alternatively, the administrator may bea clerk who creates on behalf of a supervisor a completely blankdocument to be written entirely by its collaborators.

Identifying collaborators and administrators may be carried out byincluding identifiers for them in meta data in an email documentimplemented in HTML format, for example, as shown here: <HTML> <HEAD><META name=“Document Type” content=“Collaborative Email”> <METAname=“Revision Number” content=“1”> <META name=“adminID”content=“MaryJohnson@us.ibm.com”> <META name=“collaboratorID”content=“MaryJohnson@us.ibm.com PeteJones@us.ibm.comJohnSmith@us.ibm.com”> <META name=“RevisionAuthority”content=“MaryJohnson@us.ibm.com ALL PeteJones@us.ibm.com Segment1JohnSmith@us.ibm.com Segment2”> </HEAD> <BODY> <SEGMENT1> </SEGMENT1><SEGMENT2> </SEGMENT2> </BODY> </HTML>

In this example, a metadata element named “Document Type” is used toidentify an email document as a collaborative one. A metadata elementnamed “Revision Number” is used to store the current revisionidentification of each copy of the document. The “Revision Number,”although typically stored server-side also, may advantageously berecorded in the metadata for each copy of a collaborative documentbecause each collaborator's copy and the administrative copy may embodydifferent versions of the document at the same time.

In the exemplary metadata, a metadata element named “adminID” recordsthe identity of the administrator of the document as“MaryJohnson@us.imb.com.” The administrator identification, althoughtypically stored server-side also, may advantageously be recorded in themetadata for each copy of a collaborative document so that the emailclient where the copy is revised by a collaborator or an administratorcan know whether that particular email client is the administrativeclient for that document.

In this example, a metadata element named “collaboratorID” records theidentities of the collaborators authorized to view and edit the documentin the process of writing the document. The method of FIG. 5 alsoincludes providing (506) to the collaborators copies of the document forviewing and editing, and the collaborators' copies typically reside oncollaborators' clients while the document is being written. In themetadata example, Mary Johnson, the administrator for the document, isalso identified as a collaborator, which is optional. Providing copiesto collaborators may be implemented by emailing copies from theadministrative client to the collaborators. The ‘From:’ field (310 onFIG. 3) in email clients according to embodiments of the presentinvention is often reserved for the identification of signatories, andcommunications of revisions among collaborators are carried outsynchronously or asynchronously as described in this specification. Itis possible, therefore, if an administrator is not listed as acollaborator, that none of the collaborators will ever know or care whothe administrator is.

The method of FIG. 5 includes creating (508) revisions in at least onecopy of the document. Revisions are created by recording changes in adocument effected by the usual email client document editor and encodingthem as described above: “d 5 12 hyperlink,” “I5 12 anchor,” and so on,for example.

The method of FIG. 5 includes recording (510) the revisions. Recordingis often carried out by storing them temporarily on the email clientuntil the collaborator making revisions arrives at a point where it isdesirable to record them on the server as a version. In email clientsaccording to embodiments of the present invention, a ‘commit revisions’function is programmed to transmit to a server a set of revisions whoseimplementation represents a version. That is, in the method of FIG. 5,recording revisions 510 may be implemented by storing the revisions on aserver accessible to collaborators' clients. Many such email clientsprovide a toolbar button or other user interface control such as the‘Commit Revisions’ button in the toolbar at reference 306 on FIG. 3programmed to transmit to a server a set of revisions for a version.Such a transmission of revisions is not a normal email function of SMTPor POP, for example. Instead, according to embodiments of the presentinvention, such transmissions are effected by use of TCP/IP, HTTP, orsome other data communications protocol as will occur to those of skillin the art.

In the method of FIG. 5, recording revisions typically includes storingthe revisions with a version identification for each revision. Storingrevisions with versions identifications may be carried out by storingthe version identifications in a server-side data structure such as thatshown at reference 416 on FIG. 4. Similarly, in the method of FIG. 5,recording revisions often also includes storing the revisions with asequence identification for each revision, so that the revisions can besorted or indexed within a version. Storing revisions with sequenceidentifications may be carried out by storing the sequenceidentifications in a server-side data structure such as that shown atreference 418 on FIG. 4. Persons of skill in the art will recognize thatimplementing a data structure like the revision table 422 of FIG. 4 witha revision identification 416 and a sequence identification 418 createsa unique compound key into the revisions records comprising the revisionidentification and the sequence identification in combination. In suchembodiments, the sequence identification may be a sequential integer,unique within a revision, non-unique across revisions, so that a uniquekey that includes the sequence identification also includes the revisionnumber. Alternatively, the sequence identification may be a time stampthat identifies the date and time when each revision is made. Even atime stamp can be ambiguous across revisions, however, so that a uniquekey that includes a time stamp as sequence identification alsoadvantageously includes the revision number.

The method of FIG. 5 includes updating (512) the copies of the documenton collaborators' clients with the revisions. Revisions created on acollaborator's client may be considered already incorporated into thedocument copy on that client, and the revision number on the client sidemay be updated accordingly, for example:

-   -   <META name=“Revision Number” content=“2”>

Similarly, in response to the data communications transmission carryingthe revisions of a version to a server, a server using server-side datastructures like those of FIG. 4 is programmed to update the pertinentcollaborator copy record 410 with a new version number 414 for thecollaborator copy where the new version was created. Such a server thencreates a revision record 422 for each revision comprising the newversion of the document.

Updating other collaborators' copies is then carried out byrequest/response communications between the collaborators' clients andthe server. A collaborator client sends an HTTP request message for anupdate, either an update to the next version after the one presentlyinstalled on the client or a request for a full update all the way fromthe client's current version to the latest version available. A requestfor a full update all the way from the client's current version to thelatest version available is called a synchronization request. The emailclient of FIG. 3, for example, is programmed to transmit a request for anext version in response to operation of the ‘Version Forward’ button inits toolbar 306. The email client of FIG. 3 is also programmed totransmit a request for a full update all the way from the client'scurrent version to the latest version available in response to operationof the ‘Synch’ button in its toolbar 306.

In addition to requesting a next version and full synchronization, aclient can also request a previous version. When a server receives sucha request, the server provides in a response message the revisionsdefining a previous version, and the requesting email client implementsthose revisions in reverse order, thereby creating on that email clienta previous version of the document. The email client of FIG. 3, forexample, is programmed to transmit a request for a previous version inresponse to operation of the ‘Version Back’ button in its toolbar 306.

Methods of collaborative email as illustrated in FIG. 5 also ofteninclude identifying (516) editable portions of a collaborative emaildocument. In such methods, identifying (504) one or more collaboratorstypically also includes specifying (518) that only certain collaboratorsare authorized to view and edit one or more portions of the document.Identifying (516) editable portions of a collaborative email documentmay be implemented by use of templates or by inserting markupidentifying the editable portions. Moreover, authorization for onlycertain collaborators to edit one or more portions of the documentadvantageously may be recorded in the document itself—or in each copy ofthe document—so that such limitations on authorization are easilyavailable to each collaborator's email client. In the followingexemplary email document implemented in markup format, for example:<HTML> <HEAD> <META name=“RevisionAuthority”content=“MaryJohnson@us.ibm.com ALL PeteJones@us.ibm.com Segment1JohnSmith@us.ibm.com Segment2”> </HEAD> <BODY> <SEGMENT1> </SEGMENT1><SEGMENT2> </SEGMENT2> </BODY> </HTML>,

editable portions of a document are identified, in the document itself,by the markup elements <SEGMENT1></SEGMENT1><SEGMENT2></SEGMENT2>.Specifying (518) that only certain collaborators are authorized to viewand edit one or more portions of the document in this example is carriedout by use of the metadata: <META name=“RevisionAuthority”content=“MaryJohnson@us.ibm.com ALL PeteJones@us.ibm.com Segment1JohnSmith@us.ibm.com Segment2”>,which specifies that Mary Johnson is authorized to view and edit theentire document, Pete Jones is authorized to view and edit Segment 1,and John Smith is authorized to view and edit Segment 2.

FIG. 6 sets forth a flow chart illustrating an extension of the methodof FIG. 5. That is, the method of FIG. 6 includes establishing acollaborative email document 502, identifying collaborators 504, and soon, as in the method of FIG. 5. In addition, however, the method of FIG.6 also includes identifying (602) one or more signatories for thedocument. Identifying the signatories may be implemented by programmingan email client, such as the one shown in FIG. 3, to accept as inputthrough its ‘From:’ field 310 more than one entry of signatoryidentification, JaySchwarz@us.ibm.com, MikeWilliams@us.ibm.com, and soon, and treat each of them as a signatory. In such embodiments, there isno limitation regarding when the signatories are to be identified. Thatis, they may be identified when the document is first created by anadministrator, or later, after all the collaborators are finishedrevising the document. In this sense, a collaborative email documentaccording to the present invention is different from ordinary emails inthat it may arrive in the in-boxes of collaborators with no entry in its‘From:’ field, because, for example, no one has yet decided who mustauthorize the ultimate promulgation of the document to addressees.Consider an email announcement of a new corporate policy to be sent tohundreds of addressees. The email is created by a clerk in a corporateplanning department and revised by several collaborators. Then later,after the collaborators are satisfied with the contents of the document,it is decided whether the president of the company will sign it andwhether one or more vice presidents will sign it.

The method of FIG. 6 includes providing (604) to each signatory a copyof the document for signing. To the extent that signatories are alsocollaborators, they may already have copy of the document, and they mayaffix their signatures as soon as revisions are concluded. Signatorieswho are not collaborators may be emailed a copy of the document,typically from the administrator, to obtain their signatures. In theemail client of FIG. 3, for example, the toolbar 306 includes a buttonlabeled ‘Sign,’ where the email client is programmed to email thedocument to signatories. It is common in embodiments of this inventionthat the ‘Sign’ button, the ability to send a document to a signatory,is only enabled on the administrator's email client, so that there isadministrative control over the process of affixing signatures to thedocument.

The method of FIG. 6 includes affixing (606) to the document a digitalsignature for each signatory. In this context, ‘signature’ generallyrefers to a digital signature. A digital signature is a data structurecontaining a hashed digest of the contents of a collaborative emaildocument encrypted with a signatory's private key from a public/privatekey pair of an asymmetric cryptosystem. Email clients generally areequipped with the ability to affix digital signatures to emaildocuments. In Microsoft Outlook™, for example, a digital signaturefunction is available, when an email document is open for editing,through the pull-down menus at View/Options/Security.

Checking validity of a digital signature is accomplished by decryptingthe hashed digest from the signature with a signatory's public key,hashing a new digest of the current contents of the document, andcomparing the new digest with the decrypted digest from the signature.If the new digest and the decrypted digest from the signature areidentical, the signature is considered valid. They will not be identicalif revisions to the document are entered after the signature is affixedto the document.

When the document is provided 604 to signatories for signing, therefore,in many embodiments of the present invention, the documentadvantageously is first disabled 603 for revision. A document may bedisabled for revisions, for example, by encoding that fact in a dataelement dedicated to that purpose, such as, for example, the ‘status’field 408 in the exemplary data structures of FIG. 4. Such a statusfield may be given a value such as ‘LOCKED,’ for example, and a serversupporting the revision table may then be programmed to exclude orreject revisions received from collaborators while the document is solocked.

Some embodiments do not implement disabling of revisions during signing.In some embodiments that do implement disabling of revisions duringsigning, a signatory who is also a collaborator may go ahead and affix asignature that may be rendered invalid by a later revision. In suchembodiments, as shown in FIG. 6, methods for collaborative emailadvantageously may include determining 610 whether the digitalsignatures in a document are valid, and, if they are not, providing 606the document again to one or more signatories for re-signing. In thisway, a method such as the one illustrated by FIG. 6 may send acollaborative email document from an administrative client to addresseesonly when the document bears valid digital signatures from allsignatories.

The method of FIG. 6 includes sending (608) the signed document from theadministrative client to addressees. Unlike ordinary emails, the ‘From:’field in a collaborative email arriving at addressees' in-boxesidentifies the signatories of the document rather than its actualsender. The actual sender is typically an administrator who may or maynot be known to the addressees. In this context, what the ‘From:’ fieldcommunicates is that the contents of the document are communicated toits addressees with the authority of the signatories.

At this point in processing, the identities of the administrator and thecollaborators may be of little concern to the addressees. Thecollaborators often in effect develop a document for mailing on behalfof signatories who have authority over the subject matter of thedocument. It is therefore the identity of the signatories rather thanthe identify of the developers of the document that will often beconsidered more pertinent to addressees. The collaborators, theadministrator, and the signatories may or may not be among theaddressees.

Updating (512) copies of a collaborative email document with revisionsis typically carried out by communicating the revisions asynchronouslyto the collaborators and to the administrative client. Asynchronouscommunication of revisions is useful because the collaborators' clientsmay not be on-line on the network to receive the revisions at the timewhen they are created. Asynchronous communication of revisions iscarried out by use of server-side data structures such as those shown inFIG. 4, for example. The email clients may be programmed to transmit therevisions in a standard message format such as HTTP (the HyperTextTransport Protocol), WAP (the Wireless Access Protocol), HDTP (theHandheld Device Transport Protocol), or others as will occur to those ofskill in the art. The server may support a Java Servlet or a CGI script,or other server-side functionality as will occur to those of skill inthe art, for receiving the revisions and recording them in a databasesupporting data structures similar to the exemplary ones set forth inFIG. 4. In this way, the revisions are stored on the server and remainavailable for download to collaborators' email clients when the clientsgo on-line on the network to retrieve the revisions for updating theircopies of the documents.

The exact method of updating a copy of a document on an email client maybe determined or selected by one or more setup parameters in the client.Updating a copy of a document by downloading revisions from a server maybe carried out, for example, every time an email client is activated andat periodic intervals so long as the email client is operative. Theperiodic updates may be programmed to continue in background as long asthe email client is running on a client machine even when the local copyof the document is not open for editing, so that when the copy openedfor editing, it is likely to be fully synchronized with the latestrevisions. Alternatively, a collaborator may wish to view the revisionssince his or her last review of the document one at a time, steppingthrough them by use of, for example, a ‘Version Forward’ button like theone illustrated in the toolbar at reference 306 on the email client ofFIG. 3. In this case, the collaborator would turn off the email client'ssetup parameter for automatic background updates.

In addition to asynchronous updates implemented through a server,updating (512) the collaborators' copies of a collaborative emaildocument with revisions may be carried out by communicating therevisions synchronously to one or more collaborators as the revisionsare made. Synchronous communications of revisions may be implemented byuse of messages in an instant messaging protocol. Examples of instantmessaging protocols useful with various embodiments of the presentinvention include the Instant Messaging and Presence Protocol (“IMPP”)specified by the IMPP Working Group of the Internet Engineering TaskForce and the Mitre Corporation's Simple Instant Messaging and PresenceService (“SIMP”).

FIG. 7 sets forth a flow chart illustrating a method of synchronouscommunications of revisions. In the method of FIG. 7, updating (512)copies of a collaborative email document with revisions includesidentifying (702) collaborator clients that are available forsynchronous communications of revisions. Instant messaging servicesgenerally define and support ‘presence services’ that provideindications whether an instant messaging client is on-line. Emailclients capable of supporting synchronous communications of revisionsaccording to embodiments of the present invention often are improved tosupport messaging and presence detection through one or more instantmessaging protocols. The method of FIG. 7 includes communicating (704)revisions synchronously to collaborator clients that are available forsynchronous communications, typically carried out by transmitting therevisions in instant messages to all collaborators' email clients thatare determined to be presently on-line and available for instantmessaging.

Updating copies of documents synchronously affects their versionidentifications. In the method of FIG. 7, therefore, updating thecollaborators' copies includes updating (706) current versionidentifications for the copies of the document on collaborator's clientsthat are available for synchronous communications. Updating currentversion identifications may be implemented with HTTP messages, forexample, from a client to a server that maintains server-side datastructures like those shown in FIG. 4. Such a server typically supportsserver-side functionality such as a Java servlet or a CGI scriptprogrammed to update version identifications in response to a messagefrom a client bearing a collaborator identification 412 and a documentidentification 404.

By way of further explanation, it is noted that synchronous updates andasynchronous updates are advantageously employed together. Whensynchronous communications of revisions are employed for collaborators'copies that are not synchronized with the latest revisions, there is arisk that the asynchronous revisions will be applied to a copy out ofproper sequence, thereby causing confusion in the copy of the documenton that collaborator's client. Synchronous communications of revisionstherefore are beneficially implemented for collaborators copies of adocument after collaborators' copies are synchronized with the latestrevisions from an asynchronous source of revisions.

In the method of FIG. 7, for example, identifying (702) collaboratorclients that are available for synchronous communications of revisionstypically also includes determining whether collaborators copies aresynchronized with the latest revisions. Determining whethercollaborators copies are synchronized with the latest revisions may beaccomplished by comparing a current version identification (414 on FIG.4) for each collaborator's copy of a document with the latest revisionidentification 416 in a revision table such as the one exemplified atreference 422 on FIG. 4. To the extent that it is determined that theversion of a collaborator's copy on an email client that is ‘present,’available for synchronous communications of revisions, is not thecurrent version of the document, that copy may be updated by applyingall the revisions later than its current revision number—and thenupdating its current version identification 414 to the latest versionnumber.

It will often be the case that some collaborators on a document engagein synchronous communications of revisions when other collaborators onthe same document are unavailable for synchronous communications ofrevisions. Email clients according to embodiments of the presentinvention therefore often transmit all revisions for storage on a serverfor later asynchronous downloads by the other collaborators at theirconvenience. In this way, even a collaborator who begins a synchronoussession with other collaborators and logs off in the middle of thesession, can later obtain the intervening revisions by asynchronousdownload from the server. When such a collaborator logs off duringsynchronous communication of revisions, the email client advantageouslyrecords the current version identification for that collaborator's copyof the document in a data structure such as that shown at reference 414in FIG. 4, for example. When the collaborators log off at the end ofsynchronous communication of revisions, their email clientsadvantageously record the current version identification for eachcollaborator's copy of the document in a data structure such as theexemplary one shown at reference 414 in FIG. 4.

It will be understood from the foregoing description that modificationsand changes may be made in various embodiments of the present inventionwithout departing from its true spirit. The descriptions in thisspecification are for purposes of illustration only and are not to beconstrued in a limiting sense. The scope of the present invention islimited only by the language of the following claims.

1. A method for writing a collaborative email document, the methodcomprising: establishing a collaborative email document on anadministrator's computer; identifying one or more collaborators who areauthorized to view and edit the document; providing to the collaboratorscopies of the document for viewing and editing, wherein thecollaborators' copies reside on collaborators' computers; creatingrevisions in at least one copy of the document; recording the revisions;and updating the copies of the document on collaborators' computers withthe revisions.
 2. The method of claim 1 wherein the collaboratorsinclude the administrator.
 3. The method of claim 1 wherein establishinga collaborative email document on an administrator's computer comprises:identifying an administrator for the document; and retaining anadministrative copy of the document on the administrator's computer. 4.The method of claim 1 further comprising identifying editable portionsof the email document, wherein identifying one or more collaboratorsfurther comprises specifying that only certain collaborators areauthorized to view and edit one or more portions of the document.
 5. Themethod of claim 1 further comprising recording in the documentauthorization for only certain collaborators to edit one or moreportions of the document.
 6. The method of claim 1 further comprising:identifying one or more signatories for the document; providing to eachsignatory a copy of the document for signing; affixing to the document adigital signature for each signatory; and sending the signed documentfrom the administrator's computer to addressees.
 7. The method of claim1 further comprising sending the collaborative email document from theadministrator's computer to addressees only when the document bearsvalid digital signatures from all signatories.
 8. The method of claim 1wherein recording revisions comprises storing the revisions on acomputer accessible to collaborators' computers.
 9. The method of claim1 wherein recording revisions comprises storing the revisions with aversion identification for each revision.
 10. The method of claim 1wherein recording revisions comprises storing the revisions with asequence identification for each revision.
 11. The method of claim 1wherein updating the copies of the document with the revisions furthercomprises communicating the revisions asynchronously to thecollaborators and to the administrator's computer.
 12. The method ofclaim 1 wherein updating the collaborators' copies of the document withthe revisions further comprises communicating the revisionssynchronously to one or more collaborators as the revisions are made.13. The method of claim 1 wherein updating the copies of the documentwith the revisions comprises: identifying collaborator computers thatare available for synchronous communications of revisions; communicatingrevisions synchronously to collaborator computers that are available forsynchronous communications; and updating current version identificationsfor the copies of the document on collaborator's computers that areavailable for synchronous communications.
 14. The method of claim 13wherein identifying collaborator computers that are available forsynchronous communications of revisions comprises determining whethercollaborators copies are synchronized with the latest revisions.
 15. Themethod of claim 1 wherein updating the copies of the document withrevisions comprises updating a copy of the document with all revisionslater than a current version identifier for the copy.
 16. A system forwriting a collaborative email document, the system comprising: means forestablishing a collaborative email document on an administrator'scomputer; means for identifying one or more collaborators who areauthorized to view and edit the document; means for providing to thecollaborators copies of the document for viewing and editing, whereinthe collaborators' copies reside on collaborators' computers; means forcreating revisions in at least one copy of the document; means forrecording the revisions; and means for updating the copies of thedocument on collaborators' computers with the revisions.
 17. The systemof claim 16 wherein the collaborators include the administrator.
 18. Thesystem of claim 16 wherein means for establishing a collaborative emaildocument on an administrator's computer comprises: means for identifyingan administrator for the document; and means for retaining anadministrative copy of the document on the administrator's computer. 19.The system of claim 16 further comprising means for identifying editableportions of the email document, wherein means for identifying one ormore collaborators further comprises means for specifying that onlycertain collaborators are authorized to view and edit one or moreportions of the document.
 20. The system of claim 16 further comprisingmeans for recording in the document authorization for only certaincollaborators to edit one or more portions of the document.
 21. Thesystem of claim 16 further comprising: means for identifying one or moresignatories for the document; means for providing to each signatory acopy of the document for signing; means for affixing to the document adigital signature for each signatory; and means for sending the signeddocument from the administrator's computer to addressees.
 22. The systemof claim 16 further comprising means for sending the collaborative emaildocument from the administrator's computer to addressees only when thedocument bears valid digital signatures from all signatories.
 23. Thesystem of claim 16 wherein means for recording revisions comprises meansfor storing the revisions on a computer accessible to collaborators'computers.
 24. The system of claim 16 wherein means for recordingrevisions comprises means for storing the revisions with a versionidentification for each revision.
 25. The system of claim 16 whereinmeans for recording revisions comprises means for storing the revisionswith a sequence identification for each revision.
 26. The system ofclaim 16 wherein means for updating the copies of the document with therevisions further comprises means for communicating the revisionsasynchronously to the collaborators and to the administrator's computer.27. The system of claim 16 wherein means for updating the collaborators'copies of the document with the revisions further comprises means forcommunicating the revisions synchronously to one or more collaboratorsas the revisions are made.
 28. The system of claim 16 wherein means forupdating the copies of the document with the revisions comprises: meansfor identifying collaborator computers that are available forsynchronous communications of revisions; means for communicatingrevisions synchronously to collaborator computers that are available forsynchronous communications; and means for updating current versionidentifications for the copies of the document on collaborator'scomputers that are available for synchronous communications.
 29. Thesystem of claim 28 wherein means for identifying collaborator computersthat are available for synchronous communications of revisions comprisesmeans for determining whether collaborators copies are synchronized withthe latest revisions.
 30. The system of claim 16 wherein means forupdating the copies of the document with revisions comprises means forupdating a copy of the document with all revisions later than a currentversion identifier for the copy.
 31. A computer program product forwriting a collaborative email document, the computer program productcomprising: a recording medium; means, recorded on the recording medium,for establishing a collaborative email document on an administrator'scomputer; means, recorded on the recording medium, for identifying oneor more collaborators who are authorized to view and edit the document;means, recorded on the recording medium, for providing to thecollaborators copies of the document for viewing and editing, whereinthe collaborators' copies reside on collaborators' computers; means,recorded on the recording medium, for creating revisions in at least onecopy of the document; means, recorded on the recording medium, forrecording the revisions; and means, recorded on the recording medium,for updating the copies of the document on collaborators' computers withthe revisions.
 32. The computer program product of claim 31 wherein thecollaborators include the administrator.
 33. The computer programproduct of claim 31 wherein means for establishing a collaborative emaildocument on an administrator's computer comprises: means, recorded onthe recording medium, for identifying an administrator for the document;and means, recorded on the recording medium, for retaining anadministrative copy of the document on the administrator's computer. 34.The computer program product of claim 31 further comprising means,recorded on the recording medium, for identifying editable portions ofthe email document, wherein means for identifying one or morecollaborators further comprises means, recorded on the recording medium,for specifying that only certain collaborators are authorized to viewand edit one or more portions of the document.
 35. The computer programproduct of claim 31 further comprising means, recorded on the recordingmedium, for recording in the document authorization for only certaincollaborators to edit one or more portions of the document.
 36. Thecomputer program product of claim 31 further comprising: means, recordedon the recording medium, for identifying one or more signatories for thedocument; means, recorded on the recording medium, for providing to eachsignatory a copy of the document for signing; means, recorded on therecording medium, for affixing to the document a digital signature foreach signatory; and means, recorded on the recording medium, for sendingthe signed document from the administrator's computer to addressees. 37.The computer program product of claim 31 further comprising means,recorded on the recording medium, for sending the collaborative emaildocument from the administrator's computer to addressees only when thedocument bears valid digital signatures from all signatories.
 38. Thecomputer program product of claim 31 wherein means for recordingrevisions comprises means, recorded on the recording medium, for storingthe revisions on a computer accessible to collaborators' computers. 39.The computer program product of claim 31 wherein means for recordingrevisions comprises means, recorded on the recording medium, for storingthe revisions with a version identification for each revision.
 40. Thecomputer program product of claim 31 wherein means for recordingrevisions comprises means, recorded on the recording medium, for storingthe revisions with a sequence identification for each revision.
 41. Thecomputer program product of claim 31 wherein means for updating thecopies of the document with the revisions further comprises means,recorded on the recording medium, for communicating the revisionsasynchronously to the collaborators and to the administrator's computer.42. The computer program product of claim 31 wherein means for updatingthe collaborators' copies of the document with the revisions furthercomprises means, recorded on the recording medium, for communicating therevisions synchronously to one or more collaborators as the revisionsare made.
 43. The computer program product of claim 31 wherein means forupdating the copies of the document with the revisions comprises: means,recorded on the recording medium, for identifying collaborator computersthat are available for synchronous communications of revisions; means,recorded on the recording medium, for communicating revisionssynchronously to collaborator computers that are available forsynchronous communications; and means, recorded on the recording medium,for updating current version identifications for the copies of thedocument on collaborator's computers that are available for synchronouscommunications.
 44. The computer program product of claim 43 whereinmeans for identifying collaborator computers that are available forsynchronous communications of revisions comprises means, recorded on therecording medium, for determining whether collaborators copies aresynchronized with the latest revisions.
 45. The computer program productof claim 31 wherein means for updating the copies of the document withrevisions comprises means, recorded on the recording medium, forupdating a copy of the document with all revisions later than a currentversion identifier for the copy.